/**
 * 我问你答环节
 */

// 真假对象一节中如何实现方法的链式调用
// 错误回答
/*var Method = function () { };
Method.prototype = {
    checkName: function() {
        console.log('checkName');
        return this;
    },
    checkEmail: function() {
        console.log('checkEmail');
        return this;
    },
    checkPsw: function() {
        console.log('checkPsw');
        return this;
    }
};

var method = new Method;
method.checkPsw().checkName();*/

// right answer
var checkObject = function() {
    return {
        checkName: function() {
            console.log('checkName');
            return this;
        },
        checkEmail: function() {
            console.log('checkEmail');
            return this;
        },
        checkPsw: function() {
            console.log('checkPsw');
            return this;
        }
    };
};
var method = checkObject();
method.checkName().checkEmail();

// 试着定义一个可以为函数添加多个方法的addMethod方法
/*Function.prototype.addMethod = function(name, fn) {
    this[name] = fn;
}*/

// 试着定义一个既可为函数原型添加方法又可为其自身添加方法的addMethod方法
/*Function.prototype.addMethod = function(name, fn) {
    this[name] = fn;
    return this;
}*/
